home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Leser 15 / Amiga Plus Leser CD 15.iso / Tools / Development / CIT.v4 / citra / CITGetFile.h < prev    next >
Encoding:
C/C++ Source or Header  |  2002-03-13  |  4.2 KB  |  136 lines

  1. //
  2. //                    CITGetFile include
  3. //
  4. //                          StormC
  5. //
  6. //                     version 2002.02.17
  7. //
  8.  
  9. #ifndef CIT_GETFILE_H
  10. #define CIT_GETFILE_H TRUE
  11.  
  12. #ifndef CIT_GADGETS_H
  13. #include "CITGadget.h"
  14. #endif
  15.  
  16. #include <gadgets/getfile.h>
  17.  
  18. //
  19. // This enum is for internal use only
  20. //
  21. enum
  22. {
  23.   CITGETFILE_TITLETEXT = 0,
  24.   CITGETFILE_LEFTEDGE,
  25.   CITGETFILE_TOPEDGE,
  26.   CITGETFILE_WIDTH,
  27.   CITGETFILE_HEIGHT,
  28.   CITGETFILE_FILE,
  29.   CITGETFILE_DRAWER,
  30.   CITGETFILE_FULLFILE,
  31.   CITGETFILE_FULLFILEEXPAND,
  32.   CITGETFILE_PATTERN,
  33.   CITGETFILE_DOSAVEMODE,
  34.   CITGETFILE_DOMULTISELECT,
  35.   CITGETFILE_DOPATTERNS,
  36.   CITGETFILE_DRAWERSONLY,
  37.   CITGETFILE_FILTERFUNC,
  38.   CITGETFILE_REJECTICONS,
  39.   CITGETFILE_REJECTPATTERN,
  40.   CITGETFILE_ACCEPTPATTERN,
  41.   CITGETFILE_FILTERDRAWERS,
  42.   CITGETFILE_FILELIST,
  43.   CITGETFILE_LBNODESTRUCTS,
  44.   CITGETFILE_READONLY,
  45.   CITGETFILE_FILEPARTONLY,
  46.   CITGETFILE_LAST
  47. };
  48.  
  49. class CITGetFile:public CITGadget
  50. {
  51.   public:
  52.     CITGetFile();
  53.     ~CITGetFile();
  54.  
  55.     void LeftEdge(WORD x)
  56.            {setTag(CITGETFILE_LEFTEDGE,GETFILE_LeftEdge,x);}
  57.     void TopEdge(WORD y)
  58.            {setTag(CITGETFILE_TOPEDGE,GETFILE_TopEdge,y);}
  59.     void Width(WORD w)
  60.            {setTag(CITGETFILE_WIDTH,GETFILE_Width,w);}
  61.     void Height(WORD h)
  62.            {setTag(CITGETFILE_HEIGHT,GETFILE_Height,h);}
  63.     void TitleText(char* text)
  64.            {setTag(CITGETFILE_TITLETEXT,GETFILE_TitleText,ULONG(text));}
  65.     void File(char* file)
  66.            {setTag(CITGETFILE_FILE,GETFILE_File,ULONG(file));}
  67.     void Drawer(char* drawer)
  68.            {setTag(CITGETFILE_DRAWER,GETFILE_Drawer,ULONG(drawer));}
  69.     void FullFile(char* file)
  70.            {setTag(CITGETFILE_FULLFILE,GETFILE_FullFile,ULONG(file));}
  71.     void FullFileExpand(BOOL b = TRUE)
  72.            {setTag(CITGETFILE_FULLFILEEXPAND,GETFILE_FullFileExpand,b);}
  73.     void Pattern(char* pat)
  74.            {setTag(CITGETFILE_PATTERN,GETFILE_Pattern,ULONG(pat));}
  75.     void DoSaveMode(BOOL b = TRUE)
  76.            {setTag(CITGETFILE_DOSAVEMODE,GETFILE_DoSaveMode,b);}
  77.     void DoMultiSelect(BOOL b = TRUE)
  78.            {setTag(CITGETFILE_DOMULTISELECT,GETFILE_DoMultiSelect,b);}
  79.     void DoPatterns(BOOL b = TRUE)
  80.            {setTag(CITGETFILE_DOPATTERNS,GETFILE_DoPatterns,b);}
  81.     void DrawersOnly(BOOL b = TRUE)
  82.            {setTag(CITGETFILE_DRAWERSONLY,GETFILE_DrawersOnly,b);}
  83.     void RejectIcons(BOOL b = TRUE)
  84.            {setTag(CITGETFILE_REJECTICONS,GETFILE_RejectIcons,b);}
  85.     void RejectPattern(UBYTE* rejPat)
  86.            {setTag(CITGETFILE_REJECTPATTERN,GETFILE_RejectPattern,ULONG(rejPat));}
  87.     void AcceptPattern(UBYTE* accPat)
  88.            {setTag(CITGETFILE_ACCEPTPATTERN,GETFILE_AcceptPattern,ULONG(accPat));}
  89.     void FilterDrawers(BOOL b = TRUE)
  90.            {setTag(CITGETFILE_FILTERDRAWERS,GETFILE_FilterDrawers,b);}
  91.     void LBNodeStructs(BOOL b = TRUE)
  92.            {setTag(CITGETFILE_LBNODESTRUCTS,GETFILE_LBNodeStructs,b);}
  93.     void ReadOnly(BOOL b = TRUE)
  94.            {setTag(CITGETFILE_READONLY,GETFILE_ReadOnly,b);}
  95.     void FilePartOnly(BOOL b = TRUE)
  96.            {setTag(CITGETFILE_FILEPARTONLY,GETFILE_FilePartOnly,b);}
  97.  
  98.     WORD  LeftEdge()
  99.            { return getTag(GETFILE_LeftEdge); }
  100.     WORD  TopEdge()
  101.            { return getTag(GETFILE_TopEdge); }
  102.     WORD  Width()
  103.            { return getTag(GETFILE_Width); }
  104.     WORD  Height()
  105.            { return getTag(GETFILE_Height); }
  106.     char* File()
  107.            { return (char*)getTag(GETFILE_File); }
  108.     char* Drawer()
  109.            { return (char*)getTag(GETFILE_Drawer); }
  110.     char* FullFile()
  111.            { return (char*)getTag(GETFILE_FullFile); }
  112.     char* Pattern()
  113.            { return (char*)getTag(GETFILE_Pattern); }
  114.     List* Filelist()
  115.            { return (List*)getTag(GETFILE_Filelist); }
  116.  
  117.     void RequestFile();
  118.     void FreeFilelist(List* list);
  119.  
  120.     void FilterFunc(ULONG (*p)(struct FileRequest* fReq,struct AnchorPath* anch,ULONG myData),ULONG userData)
  121.             {CITGadget::CallbackHook(CALLBACKHOOK(p),userData);}
  122.  
  123.   protected:
  124.     virtual BOOL    Create(CITWindow* CITWd,class CITRootClass* parent);
  125.     virtual Object* NewObjectA(TagItem* tags);
  126.     virtual void    hookSetup(ULONG userData);
  127.  
  128.   private:
  129.     void  setTag(int index,ULONG attr,ULONG val);
  130.     ULONG getTag(ULONG attr);
  131.  
  132.     TagItem* getFileTag;
  133. };
  134.  
  135. #endif
  136.